[セッションレポート] Amazon Neptune Analytics と生成 AI 活用(AWS-07)#AWSSummit
CX事業部のserinaです。
2024年6月20日と21日に開催されたAWS Summit Japan 2024に1日目のみですが、参加してきました。
「Amazon Neptune Analytics と生成 AI 活用」のレポートをお伝えします。
セッション概要
Amazon Neptune は、スケーラビリティと可用性に優れた、フルマネージドなグラフデータベースサービスです。このセッションでは、AWS re:Invent 2023 で発表された Amazon Neptune の新しいグラフ分析エンジン「Amazon Neptune Analytics」について詳しく解説します。また、近年急速に活用が進んでいる生成 AI と Amazon Neptune Analytics を組み合わせたソリューションについてもご紹介します。
スピーカー: 木村 達也
所属: アマゾン ウェブ サービス ジャパン合同会社 サービス & テクノロジー事業統括本部 Data & AI ソリューション本部 シニアデータベーススペシャリストソリューションアーキテクト
アジェンダ
- グラフとAmazon Neptune 概要
- Amazon Neptune Analytics 概要と生成 AI 活用
- Amazon Neptune Analytics 内部構造と実行例
セッションレポート
グラフとAmazon Neptune 概要
グラフとは何か?
グラフとは「様々なデータや関係性を抽象的な表現で表すことができる概念」と説明がありました。
ノードとエッジで構成されており、ノードがオブジェクト、エッジが関係性を表現するものだそうです。
補足情報として、2つ用語の説明がありました。
項目 | 説明 |
---|---|
プロパティ | 属性情報を付加できる |
ラベル | 種類やカテゴリといった識別情報を付加できる |
自分で調べたところ、プロパティグラフモデルというグラフモデルで使用される用語でした。
また、AWSのブログにグラフデータについて馴染みがない方向けに書かれた記事があり、
参考になりそうでした。
グラフデータベースってどんなもの?Amazon Neptune を使って グラフデータベースのクエリを体験しよう(準備編)
グラフデータベースってどんなもの?Amazon Neptune を使って グラフデータベースのクエリを体験しよう(Gremlin 編)
代表的なユースケース
以下の4つがあり、それぞれ説明されていました。
項目 | 説明 |
---|---|
ナレッジグラフ | 色々なデータを繋がったノードを辿ることによって、興味があることからその人が求めている対象をレコメンドできる |
アイデンティティグラフ | 購入するまでに見た商品や購入した商品からその人物がどういう人なのかを特定していく |
不正検知グラフ | 人物間の繋がりや取引、商品といった情報から共通のパターンを見つけ出して不正を防ぐ |
セキュリティグラフ | グラフデータ化することによって、セキュリティ上のリスクを継続的に監視してマネージする |
グラフデータをどのように格納して扱うのか
グラフデータの処理は、RDBMSで処理するには複雑なER図を作成したりSQLを発行する必要があるため、
整合性や拡張性の維持が困難とのことでした。
グラフ構造を扱う場合はグラフデータを使う方が効率的だと説明されていました。
Amazon Neptune
次にAmazon Neptuneについての説明がありました。
- フルマネージドなデータベースサービス
- 億単位のノードをミリ秒単位で処理できることが最大の特徴
- グラフモデルの選択の幅が広い
- 約6年で15回を超えるデータベースエンジンのアップデート
グラフモデルの種類について詳しく説明されており、AWSのサイトではこのように記載がありました。
Neptune は、人気の高いプロパティグラフクエリ言語 Apache TinkerPop Gremlin と Neo4j の OpenCypher、および W3C の RDF クエリ言語 SPARQL をサポートしています。
Amazon Neptune Analytics 概要と生成 AI 活用
Amazon Neptune Analyticsがリリースされたことで、
分析の箇所についてもAmazon Neptuneで処理可能になったそうです。
項目 | リリース前 | リリース後 |
---|---|---|
グラフの一部(OLTP) | 探索 Amazon Neptune Database | 探索 Amazon Neptune Database |
グラフ全体(OLAP) | 予測 Amazon Neptune ML | 予測 Amazon Neptune ML |
分析 Spark GraphX など | 分析 Amazon Neptune Analytics |
リリース前は、パイプラインを独自に構築する必要があったため
データベース管理者やインフラエンジニアの学習コストが高く、
グラフ分析基盤の課題を解決するために生まれたのが、Amazon Neptune Analyticsとのことです。
Amazon Neptune Analyticsの特徴
- フルマネージド
- 大規模なグラフに対応
- グラフ分析用アルゴリズムとベクトル検索機能
グラフ分析アルゴリズムの概要
- Clustering クラスタリング
- Similarity 類似性
- Centrality 中心性
- Path Finding 経路検索
- Vector Similarity ベクトル検索
サンプルコードとともに紹介されており、以下のような処理内容で結果を取得するそうです。
(例:シアトル・タコマ国際空港から3回以内で行ける空港を見つける)
1. 出発地を指定(シアトル・タコマ国際空港)
2. 幅優先探索(BFS)アルゴリズムを深さを指定して実行(3を指定)
3. 結果を取得(1~3回で行ける空港の一覧)
アルゴリズムを使用することで、よりシンプルな記載が可能とのことです。
また、自然言語によるOLTP処理と一緒に使う例も紹介され、
こちらの例ではチャットボットのような使い方で自然言語で結果を返却することができていました。
Amazon Neptune Analytics 内部構造と実行例
性能に課題が発生した場合、解決に重要なことはこちらの2点だそうです。
- 並列分散処理
- パーティショニング
Amazon Neptune Analyticsは、パーティションの組み合わせを自動で選択できるように設計されていて、
分散実行を担うタスクを実行キューとして扱うことで高速にインメモリ並列分散処理が可能となるそうです。
つまり、この2点を解消したサービスがAmazon Neptune Analyticsになります。
どのくらい速いのか?
実際どのくらい早くなったのかを、先ほど説明されていたシアトル・タコマ国際空港から3回以内に行ける空港を洗い出す例で示されていました。
結果として、速度の差は約70倍になったとのことでした。
分析アルゴリズムの使用状況 | 処理時間 |
---|---|
使った場合 | 約0.8秒 |
使わなかった場合 | 約7秒 |
先ほど説明があった2点を解消しているため、これだけの差が生まれたと説明がありました。
感想
今までRDBMSしか関わってこなかったため、グラフについて、またグラフデータの活用について知ることができて学びになりました。
今まで学習コストがかかりがちだった分析の箇所がこのAmazon Neptune Analyticsというサービスによってより簡単に導入できるようになったことがわかりました。
知識のない範囲のお話でしたが、これを機にグラフデータに関する理解を深めることができました。